The present invention relates generally to storage systems, and more particularly to method and circuitry for implementing multi-stream high-speed data access and recording in a storage system.
FIG. 1 is a simplified schematic diagram of a conventional hard disk. A controller 102 moves a disk head 104 across the surface of a hard disk 106. The hard disk 106 is divided into annular tracks 108. Each track 108 is divided into contiguous sectors 110. Each track 108 can hold a large number of sectors 110. In a conventional construction, one sector 110 typically holds five hundred and twelve (512) bytes of data. Hard disks holding twenty (20) or more Gbits are common. Different types of data or content program information can be stored on a hard disk including, for example, audio, video, data, etc. A content program, such as a movie of DVD quality, is generally made up of one or more files. Each file is further broken into byte groups. Each byte group is stored in a sector.
FIG. 2 is a simplified schematic diagram showing memory allocation of a conventional hard disk file system. During write cycles, sectors 110 are randomly accessed depending on which sectors are available. Available sectors are randomly located around the hard disk. Sectors 110 of FIG. 2 are further characterized as available blocks 112 and filled blocks 114. As shown in FIG. 2, the available blocks 112 and the filled blocks 114 are not necessarily stored in a contiguous manner, i.e., some filled blocks 114 may be situated between available blocks 112 and vice versa.
Conventional random allocation of sectors is typically preferred because such allocation enables a hard disk to be used to its full capacity. During a write cycle, each byte group is placed into an available or target sector. The available sector can come from any location on the hard disk. Sectors from any part of the hard disk can become available, and thereafter are subject to being rewritten. Before a byte group is placed into the target sector, the disk head (not shown) must first identify and then move to the target sector. While the positioning of the disk head over the target sector might require long head movements, this approach utilizes the hard disk to its fullest capacity. Once the disk head is positioned over the target sector, the actual writing of the byte group to that target sector can be very fast, e.g., greater than fifty (50) MB/sec. The time it takes for the disk head to position over the target sector, however, can take a relatively substantial amount of time, e.g., 10-40 msec. This is because the available sectors for writing are randomly located on the hard disk. Consequently, the available sectors need to be initially identified or searched which adds to the access time in both write and read cycles.
Due to the need to search for the available sectors, access times may vary depending on how far the disk head must travel across the hard disk. For example, if the disk head must travel from one sector to another and both sectors are in relatively close proximity, the access time might be relatively fast, e.g., 10 ms. If, however, the disk head is originally positioned towards the outer edge of the hard disk and must then travel towards the center of the hard disk, then the access time can be relatively slow, e.g., 40 ms. Thus, the range of access times may also vary depending on the size of the hard disk, and will likely increase with larger hard disks.
Furthermore, excessively long access time may cause loss of data when read and write cycles are alternated. Due to multi-tasking, a conventional system almost always has to alternate between read and write cycles. Alternating between read and write cycles can occur in a number of different situations including, for example, when a user who is recording and viewing a content program, such as a movie, stops viewing the movie temporarily and returns to viewing from where the user left off. Recording of the movie, however, continues despite the temporary viewing stoppage. In this situation, since there is only one disk head in the system, the disk head has to be moved around alternately to retrieve the next block of data for display to the user and then search for the next available sectors for storing data on the hard disk. If the access time for the read cycle becomes intolerably long, then the resulting disruption in the viewing of the movie may become noticeable to the user. Likewise, if the access time for the write cycle is too slow, information can be lost because the disk head may stop writing in order to initiate the next read cycle to read data that is needed for display to the user.
A number of statistical models have been used to measure the average fallout of conventional systems, i.e., the amount of information lost. The average fallout increases when multiple streams of information are received. For example, two tuners might be employed to receive two information streams from two different sources. In this situation, the disk head may be limited by its own speed and may not be able to handle write cycles in a sufficiently fast manner to allow both information streams to be recorded.
Hence, it would be desirable to provide a storage system that is able to handle multi-stream data access and recording in a more efficient manner so as to improve system performance and minimize loss of data.